package com.cbh.amadeus.client.domain;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * @author ChenBiHui
 * @date 2025/5/4
 */
@Data
public class MessageRepositoryModel {

    /**
     * 序列
     */
    private String id;

    /**
     * 消息方式
     * {@link com.cbh.amadeus.common.enums.MessageApproach}
     */
    private byte approach;

    /**
     * 触发时间
     */
    private long achieve;

    /**
     * 消息发布者
     */
    private String provider;

    /**
     * 主题
     */
    private String topic;

    /**
     * 消息ID
     */
    private String messageId;

    /**
     * 消息内容
     */
    private String payload;

    /**
     * 消息状态
     * {@link MessageRepositoryEnum}
     */
    private String status;

    /**
     * 消息拒收次数
     */
    private Integer reject;

    /**
     * 发送时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 消息模型 状态枚举
     */
    public enum MessageRepositoryEnum {

        /**
         * 活跃 - 默认
         */
        ACTIVE,

        /**
         * 释放 - 不再进入重发列表
         */
        RELEASE,

        /**
         * 丢弃 - 不再进入重发列表
         */
        ABANDON;
    }
}
